// DOM加载完成后执行初始化
document.addEventListener('DOMContentLoaded', function() {
    const cartItemsContainer = document.querySelector('.cart-items');
    const emptyCartDiv = document.querySelector('.empty-cart');
    const cartSummary = document.querySelector('.cart-summary');
    
    // 加载购物车数据并渲染页面
    loadCart();
    
    // 结算按钮事件处理
    const checkoutBtn = document.querySelector('.btn-checkout');
    if (checkoutBtn) {
        checkoutBtn.addEventListener('click', function() {
            // 检查用户登录状态（存储在localStorage中）
            const isLoggedIn = localStorage.getItem('isLoggedIn');
            
            if (!isLoggedIn) {
                // 未登录则提示并跳转到登录页
                alert('请先登录');
                window.location.href = 'login.html';
            } else {
                // 已登录但结算功能未实现时的提示
                alert('结算功能将在完整版中实现');
            }
        });
    }
});

// 加载购物车数据并渲染到页面
function loadCart() {
    // 从localStorage获取购物车数据，若无则初始化为空数组
    const cart = JSON.parse(localStorage.getItem('cart')) || [];
    const cartItemsContainer = document.querySelector('.cart-items');
    const emptyCartDiv = document.querySelector('.empty-cart');
    const cartSummary = document.querySelector('.cart-summary');
    
    // 处理空购物车情况
    if (cart.length === 0) {
        emptyCartDiv.style.display = 'block';
        cartSummary.style.display = 'none';
        return;
    }
    
    // 显示购物车内容，隐藏空购物车提示
    emptyCartDiv.style.display = 'none';
    cartSummary.style.display = 'flex';
    
    // 清空现有商品列表，但保留空购物车提示
    while (cartItemsContainer.firstChild && cartItemsContainer.firstChild !== emptyCartDiv) {
        cartItemsContainer.removeChild(cartItemsContainer.firstChild);
    }
    
    // 初始化商品总数和总价
    let totalCount = 0;
    let totalPrice = 0;
    
    // 遍历购物车数据，生成商品DOM元素
    cart.forEach(item => {
        const cartItemElement = document.createElement('div');
        cartItemElement.className = 'cart-item';
        cartItemElement.innerHTML = `
            <div class="cart-item-image">
                <img src="${item.image}" alt="${item.name}">
            </div>
            <div class="cart-item-details">
                <h3 class="cart-item-title">${item.name}</h3>
                <p class="cart-item-price">¥${item.price.toFixed(2)}</p>
                <div class="cart-item-actions">
                    <div class="quantity-control">
                        <button class="decrease" data-id="${item.id}">-</button>
                        <input type="text" value="${item.quantity}" class="quantity" data-id="${item.id}">
                        <button class="increase" data-id="${item.id}">+</button>
                    </div>
                    <span class="remove-item" data-id="${item.id}">删除</span>
                </div>
            </div>
        `;
        
        // 将商品添加到购物车容器
        cartItemsContainer.insertBefore(cartItemElement, emptyCartDiv);
        
        // 累加商品总数和总价
        totalCount += item.quantity;
        totalPrice += item.price * item.quantity;
    });
    
    // 更新汇总信息（商品总数和总价）
    document.querySelector('.total-count').textContent = totalCount;
    document.querySelector('.total-price span').textContent = totalPrice.toFixed(2);
    
    // 为动态生成的元素添加事件监听器
    document.querySelectorAll('.decrease').forEach(button => {
        button.addEventListener('click', function() {
            updateQuantity(parseInt(this.getAttribute('data-id')), -1);
        });
    });
    
    document.querySelectorAll('.increase').forEach(button => {
        button.addEventListener('click', function() {
            updateQuantity(parseInt(this.getAttribute('data-id')), 1);
        });
    });
    
    document.querySelectorAll('.quantity').forEach(input => {
        input.addEventListener('change', function() {
            setQuantity(parseInt(this.getAttribute('data-id')), parseInt(this.value) || 1);
        });
    });
    
    document.querySelectorAll('.remove-item').forEach(span => {
        span.addEventListener('click', function() {
            removeItem(parseInt(this.getAttribute('data-id')));
        });
    });
}

// 更新商品数量（增减操作）
function updateQuantity(productId, change) {
    // 从localStorage获取购物车数据
    let cart = JSON.parse(localStorage.getItem('cart')) || [];
    const item = cart.find(item => item.id === productId);
    
    if (item) {
        // 更新商品数量，确保不小于1
        item.quantity += change;
        
        if (item.quantity < 1) {
            item.quantity = 1;
        }
    }
    
    // 保存更新后的购物车数据
    localStorage.setItem('cart', JSON.stringify(cart));
    // 重新加载购物车并更新总数显示
    loadCart();
    updateCartCount();
}

// 直接设置商品数量（输入框修改）
function setQuantity(productId, quantity) {
    // 确保数量不小于1
    if (quantity < 1) quantity = 1;
    
    let cart = JSON.parse(localStorage.getItem('cart')) || [];
    const item = cart.find(item => item.id === productId);
    
    if (item) {
        item.quantity = quantity;
    }
    
    localStorage.setItem('cart', JSON.stringify(cart));
    loadCart();
    updateCartCount();
}

// 从购物车中移除商品
function removeItem(productId) {
    let cart = JSON.parse(localStorage.getItem('cart')) || [];
    // 过滤掉要删除的商品
    cart = cart.filter(item => item.id !== productId);
    
    localStorage.setItem('cart', JSON.stringify(cart));
    loadCart();
    updateCartCount();
}

// 更新购物车图标上的数字（显示商品总数）
function updateCartCount() {
    const cart = JSON.parse(localStorage.getItem('cart')) || [];
    // 计算所有商品的总数量
    const totalItems = cart.reduce((total, item) => total + item.quantity, 0);
    
    // 更新页面上所有购物车图标的数字
    document.querySelectorAll('.cart-count').forEach(element => {
        element.textContent = totalItems;
    });
}